{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:42.326517Z",
     "start_time": "2018-10-18T08:49:41.971746Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "from torch.optim.lr_scheduler import StepLR\n",
    "from torch.utils.data import DataLoader,TensorDataset\n",
    "import torch.utils.data as data\n",
    "import numpy as np\n",
    "import scipy.io as sio\n",
    "import math\n",
    "import argparse\n",
    "import random\n",
    "import os\n",
    "from My_Loss import HardTripletLoss\n",
    "from My_Loss import HardTripletLoss2\n",
    "from My_Loss import HardTripletLoss_D\n",
    "from tensorboardX import SummaryWriter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:42.329301Z",
     "start_time": "2018-10-18T08:49:42.327421Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "EPISODE = 100000\n",
    "TEST_EPISODE = 1000\n",
    "LEARNING_RATE =1e-3\n",
    "Weight_Deacy = 1e-6\n",
    "GPU = 0\n",
    "Margin = 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:43.025135Z",
     "start_time": "2018-10-18T08:49:42.330286Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init dataset\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "print(\"init dataset\")\n",
    "##################################参数##################################################################\n",
    "dataroot = '../data'\n",
    "dataset = 'CUB1_data'\n",
    "image_embedding = 'res101'               #ResNet101层\n",
    "class_embedding = 'original_att'         #属性表达 85-d\n",
    "#######################################读取视觉特征###################################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + image_embedding + \".mat\")  #scipy loadmat\n",
    " \n",
    "feature = matcontent['features'].T         #转置 30478x2048 每一行是一个完整的样本\n",
    "\n",
    "label = matcontent['labels'].astype(int).squeeze() - 1   #matlab begin 1 ,numpy begin 0\n",
    "########################################读取属性特征###########################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + class_embedding + \"_splits.mat\")\n",
    "\n",
    "    \n",
    "# numpy array index starts from 0, matlab starts from 1\n",
    "trainval_loc = matcontent['trainval_loc'].squeeze() - 1    #squeeze()去掉维度中的1 AxBx1 --->AxB\n",
    "\n",
    "test_seen_loc = matcontent['test_seen_loc'].squeeze() - 1\n",
    "test_unseen_loc = matcontent['test_unseen_loc'].squeeze() - 1\n",
    "\n",
    "attribute = matcontent['att'].T    #转置 50x85 每行是整个属性向量\n",
    "\n",
    "x = feature[trainval_loc]                      # train_features trainval里面是图片的编号 begin with 0 ，19832个\n",
    "train_label = label[trainval_loc].astype(int)  # train_label  int类型没变 每个图片的lable 19832个\n",
    "train_id = np.unique(train_label)\n",
    "\n",
    "att = attribute[train_label]                   # train attributes 每个图片的属性 19832个\n",
    "\n",
    "########################add negative pairs#######################\n",
    "#x_negative = np.empty_like(x)\n",
    "#x_negative_label = np.empty_like(train_label)\n",
    "#print(x.shape[0])\n",
    "\n",
    "#for i in range(x.shape[0]):\n",
    "#    pick=np.random.choice(np.where(train_label[i]!=train_id)[0], replace=True)\n",
    "#    x_negative[i] = x[pick]\n",
    "#    x_negative_label[i] = train_label[pick]\n",
    "    \n",
    "x_test = feature[test_unseen_loc]                   # test_feature 5685个\n",
    "test_label = label[test_unseen_loc].astype(int)     # test_label   5685个\n",
    "\n",
    "x_test_seen = feature[test_seen_loc]                #test_seen_feature 4958个\n",
    "test_label_seen = label[test_seen_loc].astype(int)  # test_seen_label  4958个\n",
    "    \n",
    "test_id = np.unique(test_label)                     # test_id  10个类 ，unique去重\n",
    "att_pro = attribute[test_id]                        # test_attribute 每一类的属性向量 10x85\n",
    "\n",
    "# train set\n",
    "train_features = torch.from_numpy(x)   #np-->tensor\n",
    "#train_fearures_negative = torch.from_numpy(x_negative)\n",
    "\n",
    "sample_attributes=[]\n",
    "train_label = torch.from_numpy(train_label).unsqueeze(1) #每张图片的属性转化 ，unsqueeze(1)就是插入到第一维度 AxB维-->Ax1xB\n",
    "#train_negative_label = torch.from_numpy(x_negative_label).unsqueeze(1)\n",
    "# attributes\n",
    "all_attributes = np.array(attribute)  #所有50类属性转变为numpy数组???属性向量仍然用的numpy类型 没有转化为pytorch\n",
    "#print(all_attributes)\n",
    "    \n",
    "#print('-'*50)\n",
    "attributes = torch.from_numpy(attribute) \n",
    "#print(attribute)\n",
    "# test set\n",
    "\n",
    "test_features = torch.from_numpy(x_test)\n",
    "#print(test_features.shape)\n",
    "\n",
    "test_label = torch.from_numpy(test_label).unsqueeze(1)\n",
    "#print(test_label.shape)\n",
    "\n",
    "testclasses_id = np.array(test_id)\n",
    "#print(testclasses_id.shape)\n",
    "\n",
    "test_attributes = torch.from_numpy(att_pro).float()\n",
    "#print(test_attributes.shape)\n",
    "\n",
    "test_seen_features = torch.from_numpy(x_test_seen)\n",
    "#print(test_seen_features.shape)\n",
    "\n",
    "test_seen_label = torch.from_numpy(test_label_seen)\n",
    "\n",
    "train_data = TensorDataset( train_label, train_features )\n",
    "#train_data = TensorDataset(train_label, train_features, train_fearures_negative)\n",
    "\n",
    "#################here need new code to make triplet data#####################\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:43.029046Z",
     "start_time": "2018-10-18T08:49:43.026412Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "from my_net_3 import AttributeNetwork\n",
    "from my_net_3 import MetricNetwork"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:44.990799Z",
     "start_time": "2018-10-18T08:49:43.030325Z"
    },
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init networks\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# init network\n",
    "print(\"init networks\")\n",
    "attribute_network = AttributeNetwork(312,1200,2048)  #85d属性 1024隐藏层 2048输出 85d到2048d\n",
    "metric_network = MetricNetwork(2048,1200,2048)\n",
    "#triplet_network = TripletNetwork(attribute_network, metric_network)  #metric learning   \n",
    "attribute_network.cuda(GPU) \n",
    "metric_network.cuda(GPU)\n",
    "#attribute_network_optim = torch.optim.Adam(attribute_network.parameters(), lr=LEARNING_RATE, weight_decay=1e-5)\n",
    "#优化器adam 学习率 正则1e-5\n",
    "\n",
    "#attribute_network_scheduler = StepLR(attribute_network_optim, step_size=200000, gamma=0.5)\n",
    "#学习率每200k步 乘0.5\n",
    "attribute_network_optim = torch.optim.SGD(attribute_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy,momentum=0.5)\n",
    "metric_network_optim = torch.optim.SGD(metric_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy)\n",
    "#\n",
    "#triplet_network_optim = torch.optim.SGD(triplet_network.parameters(), lr=LEARNING_RATE,momentum=0.9 , \n",
    "#                                         weight_decay=Weight_Deacy)\n",
    "\n",
    "attribute_network_scheduler = StepLR(attribute_network_optim , step_size=10000 , gamma=1)\n",
    "metric_network_scheduler = StepLR(metric_network_optim , step_size=10000 , gamma=1)\n",
    "#\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:44.996470Z",
     "start_time": "2018-10-18T08:49:44.991691Z"
    },
    "collapsed": true,
    "hide_input": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy(test_features, test_label, test_id, test_attributes):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "        #print(batch_features_ext)\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "        #print(sample_features_ext.shape)\n",
    "\n",
    "\n",
    "        relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        #print(predict_labels)\n",
    "        rewards = [1 if predict_labels[j] == re_batch_labels[j] else 0 for j in range(batch_size)]\n",
    "        total_rewards += np.sum(rewards)\n",
    "    test_accuracy = total_rewards/1.0/test_size\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T08:49:45.004273Z",
     "start_time": "2018-10-18T08:49:44.997469Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim = False):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "    #print(test_features.size())\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "    per_class_num = np.zeros(class_num)\n",
    "    per_class_true= np.zeros(class_num)\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = (Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "\n",
    "        sample_features = (attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "\n",
    "        if cos_sim:\n",
    "            relations = F.cosine_similarity(batch_features_ext, sample_features_ext).view(-1, class_num)\n",
    "        else:\n",
    "            relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels_id, batch_per_num = np.unique(re_batch_labels , return_counts=True) \n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "        \n",
    "        for each in range(re_batch_labels_id.size):\n",
    "            #print(re_batch_labels_id[each])\n",
    "            #print(batch_per_num[each])\n",
    "            per_class_num[re_batch_labels_id[each]] = per_class_num[re_batch_labels_id[each]] + batch_per_num[each]\n",
    "        #print(re_batch_labels_id)\n",
    "        #print('-'*100)\n",
    "        #print(batch_per_num)\n",
    "        #print('-'*100)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        for j in range(batch_size):\n",
    "            if predict_labels[j] == re_batch_labels[j]:\n",
    "                per_class_true[re_batch_labels[j]] = per_class_true[re_batch_labels[j]] + 1\n",
    "            \n",
    "        \n",
    "        \n",
    "    per_accuracy = per_class_true[np.nonzero(per_class_num)] / per_class_num[np.nonzero(per_class_num)]\n",
    "    \n",
    "\n",
    "    test_accuracy = np.sum(per_accuracy)/1.0/np.count_nonzero(per_class_num)\n",
    "    \n",
    "    #print(np.count_nonzero(per_class_num))\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T11:09:45.092257Z",
     "start_time": "2018-10-18T08:49:45.005606Z"
    },
    "code_folding": [],
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training...\n",
      "episode: 1 loss tensor(22.4386, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.02\n",
      "gzsl: unseen=0.0200 , seen=0.0000 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 200 loss tensor(3.6570, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.05867231638418078\n",
      "gzsl: unseen=0.0530 , seen=0.0106 , h=0.0177\n",
      "____________________________________________________________________________________________________\n",
      "episode: 400 loss tensor(2.9636, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06949378531073445\n",
      "gzsl: unseen=0.0311 , seen=0.0414 , h=0.0355\n",
      "____________________________________________________________________________________________________\n",
      "episode: 600 loss tensor(2.4692, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09285204136019613\n",
      "gzsl: unseen=0.0630 , seen=0.0777 , h=0.0696\n",
      "____________________________________________________________________________________________________\n",
      "episode: 800 loss tensor(2.0670, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10081694915254236\n",
      "gzsl: unseen=0.0955 , seen=0.0480 , h=0.0639\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1000 loss tensor(1.9349, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11602131968873254\n",
      "gzsl: unseen=0.1057 , seen=0.0555 , h=0.0728\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1200 loss tensor(1.7079, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1501805351241872\n",
      "gzsl: unseen=0.1323 , seen=0.1046 , h=0.1169\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1400 loss tensor(1.8450, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11607005649717514\n",
      "gzsl: unseen=0.1141 , seen=0.0474 , h=0.0669\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1600 loss tensor(1.4611, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12381016949152542\n",
      "gzsl: unseen=0.1184 , seen=0.0871 , h=0.1004\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1800 loss tensor(1.5000, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13665419464875814\n",
      "gzsl: unseen=0.1329 , seen=0.0788 , h=0.0990\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2000 loss tensor(1.9383, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0948508474576271\n",
      "gzsl: unseen=0.0922 , seen=0.0677 , h=0.0781\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2200 loss tensor(1.5636, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17158074832107448\n",
      "gzsl: unseen=0.1639 , seen=0.0841 , h=0.1112\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2400 loss tensor(1.6777, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1662688412749174\n",
      "gzsl: unseen=0.1639 , seen=0.0665 , h=0.0946\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2600 loss tensor(1.5437, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1147443769320968\n",
      "gzsl: unseen=0.1099 , seen=0.0647 , h=0.0814\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2800 loss tensor(1.6864, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14786775397079205\n",
      "gzsl: unseen=0.1442 , seen=0.0781 , h=0.1013\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3000 loss tensor(1.5292, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15541464662615925\n",
      "gzsl: unseen=0.1487 , seen=0.0934 , h=0.1147\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3200 loss tensor(1.7551, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14136032405926874\n",
      "gzsl: unseen=0.1380 , seen=0.0824 , h=0.1032\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3400 loss tensor(1.3559, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14499548022598868\n",
      "gzsl: unseen=0.1423 , seen=0.0530 , h=0.0772\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3600 loss tensor(1.4817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1332282485875706\n",
      "gzsl: unseen=0.1316 , seen=0.0424 , h=0.0641\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3800 loss tensor(1.3169, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12909604519774012\n",
      "gzsl: unseen=0.1277 , seen=0.0472 , h=0.0690\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4000 loss tensor(1.8314, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10052182070141776\n",
      "gzsl: unseen=0.0992 , seen=0.0533 , h=0.0693\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4200 loss tensor(1.3849, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15303029527768897\n",
      "gzsl: unseen=0.1490 , seen=0.0616 , h=0.0871\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4400 loss tensor(1.4394, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12467562093593433\n",
      "gzsl: unseen=0.1210 , seen=0.0369 , h=0.0566\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4600 loss tensor(1.4653, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16933081761006288\n",
      "gzsl: unseen=0.1654 , seen=0.0608 , h=0.0890\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4800 loss tensor(1.4564, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1285322033898305\n",
      "gzsl: unseen=0.1282 , seen=0.0448 , h=0.0664\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5000 loss tensor(1.7801, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1565276836158192\n",
      "gzsl: unseen=0.1559 , seen=0.0401 , h=0.0638\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5200 loss tensor(1.5384, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16446214689265534\n",
      "gzsl: unseen=0.1641 , seen=0.0531 , h=0.0802\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5400 loss tensor(1.6175, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15641129943502824\n",
      "gzsl: unseen=0.1551 , seen=0.0392 , h=0.0626\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 5600 loss tensor(1.2237, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11745193476175247\n",
      "gzsl: unseen=0.1175 , seen=0.0443 , h=0.0643\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5800 loss tensor(1.5216, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14503724549621577\n",
      "gzsl: unseen=0.1437 , seen=0.0432 , h=0.0664\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6000 loss tensor(1.4905, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13641694915254238\n",
      "gzsl: unseen=0.1354 , seen=0.0553 , h=0.0786\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6200 loss tensor(1.5360, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11005645453576378\n",
      "gzsl: unseen=0.1101 , seen=0.0251 , h=0.0409\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6400 loss tensor(1.3412, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15474576271186438\n",
      "gzsl: unseen=0.1537 , seen=0.0358 , h=0.0580\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6600 loss tensor(1.6605, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13286440677966102\n",
      "gzsl: unseen=0.1325 , seen=0.0258 , h=0.0432\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6800 loss tensor(1.3545, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09840112994350284\n",
      "gzsl: unseen=0.0981 , seen=0.0336 , h=0.0501\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7000 loss tensor(1.4144, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12867683615819211\n",
      "gzsl: unseen=0.1287 , seen=0.0072 , h=0.0137\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7200 loss tensor(1.6670, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10970621468926552\n",
      "gzsl: unseen=0.1094 , seen=0.0239 , h=0.0393\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7400 loss tensor(1.2590, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.152\n",
      "gzsl: unseen=0.1517 , seen=0.0277 , h=0.0469\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7600 loss tensor(1.5451, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1285762711864407\n",
      "gzsl: unseen=0.1282 , seen=0.0283 , h=0.0464\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7800 loss tensor(1.5515, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1299717514124294\n",
      "gzsl: unseen=0.1300 , seen=0.0196 , h=0.0341\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8000 loss tensor(1.7947, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07852542372881356\n",
      "gzsl: unseen=0.0785 , seen=0.0098 , h=0.0174\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8200 loss tensor(1.2929, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1064915254237288\n",
      "gzsl: unseen=0.1065 , seen=0.0321 , h=0.0493\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8400 loss tensor(1.4273, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.138648544931244\n",
      "gzsl: unseen=0.1386 , seen=0.0282 , h=0.0469\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8600 loss tensor(1.4853, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13922033898305083\n",
      "gzsl: unseen=0.1392 , seen=0.0215 , h=0.0372\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8800 loss tensor(1.1561, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10455814945101802\n",
      "gzsl: unseen=0.1042 , seen=0.0118 , h=0.0213\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9000 loss tensor(1.4501, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0964858757062147\n",
      "gzsl: unseen=0.0965 , seen=0.0160 , h=0.0275\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9200 loss tensor(1.6356, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17196836158192091\n",
      "gzsl: unseen=0.1699 , seen=0.0204 , h=0.0364\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9400 loss tensor(1.6443, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13264406779661017\n",
      "gzsl: unseen=0.1326 , seen=0.0264 , h=0.0441\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9600 loss tensor(1.4276, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14657062146892652\n",
      "gzsl: unseen=0.1462 , seen=0.0268 , h=0.0454\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9800 loss tensor(1.5226, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11350847457627118\n",
      "gzsl: unseen=0.1135 , seen=0.0112 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10000 loss tensor(1.6792, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15722033898305085\n",
      "gzsl: unseen=0.1569 , seen=0.0292 , h=0.0493\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10200 loss tensor(1.3409, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12324293785310733\n",
      "gzsl: unseen=0.1232 , seen=0.0055 , h=0.0106\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10400 loss tensor(1.5833, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14592090395480226\n",
      "gzsl: unseen=0.1459 , seen=0.0314 , h=0.0516\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10600 loss tensor(1.2682, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13770621468926553\n",
      "gzsl: unseen=0.1377 , seen=0.0136 , h=0.0248\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10800 loss tensor(1.6225, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11541242937853108\n",
      "gzsl: unseen=0.1154 , seen=0.0120 , h=0.0217\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11000 loss tensor(1.5938, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10961016949152544\n",
      "gzsl: unseen=0.1096 , seen=0.0149 , h=0.0263\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 11200 loss tensor(1.1763, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11189265536723164\n",
      "gzsl: unseen=0.1116 , seen=0.0148 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11400 loss tensor(1.4577, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12956497175141243\n",
      "gzsl: unseen=0.1296 , seen=0.0145 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11600 loss tensor(1.2338, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13522033898305086\n",
      "gzsl: unseen=0.1352 , seen=0.0214 , h=0.0369\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11800 loss tensor(1.2913, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11694915254237287\n",
      "gzsl: unseen=0.1169 , seen=0.0125 , h=0.0227\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12000 loss tensor(1.6765, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14862711864406777\n",
      "gzsl: unseen=0.1486 , seen=0.0234 , h=0.0404\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12200 loss tensor(1.4744, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14528696301034005\n",
      "gzsl: unseen=0.1453 , seen=0.0185 , h=0.0329\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12400 loss tensor(1.4658, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11020903954802261\n",
      "gzsl: unseen=0.1102 , seen=0.0119 , h=0.0215\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12600 loss tensor(1.5719, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16760451977401128\n",
      "gzsl: unseen=0.1676 , seen=0.0147 , h=0.0271\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12800 loss tensor(1.4322, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14862146892655367\n",
      "gzsl: unseen=0.1486 , seen=0.0139 , h=0.0254\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13000 loss tensor(1.2108, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11657627118644066\n",
      "gzsl: unseen=0.1166 , seen=0.0114 , h=0.0207\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13200 loss tensor(2.0731, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15428813559322033\n",
      "gzsl: unseen=0.1543 , seen=0.0170 , h=0.0307\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13400 loss tensor(1.3677, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12622598870056495\n",
      "gzsl: unseen=0.1262 , seen=0.0140 , h=0.0253\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13600 loss tensor(1.4230, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12417396866005756\n",
      "gzsl: unseen=0.1242 , seen=0.0060 , h=0.0114\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13800 loss tensor(1.5106, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13923163841807912\n",
      "gzsl: unseen=0.1389 , seen=0.0201 , h=0.0351\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14000 loss tensor(1.6903, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11680225988700567\n",
      "gzsl: unseen=0.1168 , seen=0.0079 , h=0.0148\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14200 loss tensor(1.6147, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10884180790960453\n",
      "gzsl: unseen=0.1088 , seen=0.0150 , h=0.0263\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14400 loss tensor(2.1703, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14912994350282485\n",
      "gzsl: unseen=0.1491 , seen=0.0117 , h=0.0217\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14600 loss tensor(1.2960, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13298870056497175\n",
      "gzsl: unseen=0.1327 , seen=0.0283 , h=0.0466\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14800 loss tensor(1.2449, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10960451977401131\n",
      "gzsl: unseen=0.1096 , seen=0.0119 , h=0.0215\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15000 loss tensor(1.3367, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12533216075045306\n",
      "gzsl: unseen=0.1250 , seen=0.0118 , h=0.0216\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15200 loss tensor(1.4242, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07657627118644067\n",
      "gzsl: unseen=0.0766 , seen=0.0050 , h=0.0093\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15400 loss tensor(1.2508, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09820790960451976\n",
      "gzsl: unseen=0.0982 , seen=0.0110 , h=0.0198\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15600 loss tensor(1.4709, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13291525423728814\n",
      "gzsl: unseen=0.1329 , seen=0.0099 , h=0.0185\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15800 loss tensor(1.3299, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14466666666666667\n",
      "gzsl: unseen=0.1443 , seen=0.0187 , h=0.0331\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16000 loss tensor(1.7388, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13948022598870058\n",
      "gzsl: unseen=0.1395 , seen=0.0077 , h=0.0147\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16200 loss tensor(1.2345, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.129954802259887\n",
      "gzsl: unseen=0.1300 , seen=0.0138 , h=0.0250\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16400 loss tensor(1.4726, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14264406779661018\n",
      "gzsl: unseen=0.1426 , seen=0.0138 , h=0.0251\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16600 loss tensor(1.5271, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.14780225988700565\n",
      "gzsl: unseen=0.1478 , seen=0.0103 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16800 loss tensor(1.6966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09548022598870055\n",
      "gzsl: unseen=0.0955 , seen=0.0049 , h=0.0094\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17000 loss tensor(1.3576, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09252542372881356\n",
      "gzsl: unseen=0.0925 , seen=0.0087 , h=0.0158\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17200 loss tensor(1.4986, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13082485875706215\n",
      "gzsl: unseen=0.1308 , seen=0.0049 , h=0.0095\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17400 loss tensor(1.6634, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12856497175141243\n",
      "gzsl: unseen=0.1286 , seen=0.0165 , h=0.0292\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17600 loss tensor(1.5914, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1292937853107345\n",
      "gzsl: unseen=0.1293 , seen=0.0135 , h=0.0244\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17800 loss tensor(1.1626, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11492655367231638\n",
      "gzsl: unseen=0.1149 , seen=0.0081 , h=0.0151\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18000 loss tensor(1.4528, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13194915254237288\n",
      "gzsl: unseen=0.1319 , seen=0.0150 , h=0.0269\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18200 loss tensor(1.6006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09222598870056498\n",
      "gzsl: unseen=0.0919 , seen=0.0064 , h=0.0120\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18400 loss tensor(1.2527, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.130045197740113\n",
      "gzsl: unseen=0.1300 , seen=0.0072 , h=0.0137\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18600 loss tensor(1.5691, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13030508474576272\n",
      "gzsl: unseen=0.1303 , seen=0.0095 , h=0.0178\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18800 loss tensor(1.3631, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1172768361581921\n",
      "gzsl: unseen=0.1173 , seen=0.0098 , h=0.0181\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19000 loss tensor(1.5403, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14581920903954804\n",
      "gzsl: unseen=0.1458 , seen=0.0110 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19200 loss tensor(0.9420, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13461581920903953\n",
      "gzsl: unseen=0.1346 , seen=0.0072 , h=0.0136\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19400 loss tensor(1.1159, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11191525423728814\n",
      "gzsl: unseen=0.1119 , seen=0.0098 , h=0.0181\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19600 loss tensor(1.2954, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09215819209039548\n",
      "gzsl: unseen=0.0922 , seen=0.0053 , h=0.0101\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19800 loss tensor(1.1861, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14102824858757063\n",
      "gzsl: unseen=0.1410 , seen=0.0098 , h=0.0183\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20000 loss tensor(1.6029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11115819209039547\n",
      "gzsl: unseen=0.1112 , seen=0.0074 , h=0.0139\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20200 loss tensor(1.4061, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11718644067796609\n",
      "gzsl: unseen=0.1172 , seen=0.0098 , h=0.0181\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20400 loss tensor(1.4374, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09775706214689267\n",
      "gzsl: unseen=0.0978 , seen=0.0102 , h=0.0185\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20600 loss tensor(1.2918, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11993785310734463\n",
      "gzsl: unseen=0.1199 , seen=0.0084 , h=0.0156\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20800 loss tensor(1.6834, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12893220338983052\n",
      "gzsl: unseen=0.1289 , seen=0.0070 , h=0.0133\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21000 loss tensor(1.1764, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10896610169491526\n",
      "gzsl: unseen=0.1090 , seen=0.0049 , h=0.0093\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21200 loss tensor(1.2535, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08416384180790962\n",
      "gzsl: unseen=0.0842 , seen=0.0063 , h=0.0117\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21400 loss tensor(1.2985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09584858757062147\n",
      "gzsl: unseen=0.0958 , seen=0.0041 , h=0.0078\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21600 loss tensor(1.5233, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09620903954802261\n",
      "gzsl: unseen=0.0962 , seen=0.0071 , h=0.0132\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21800 loss tensor(1.0573, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10331638418079098\n",
      "gzsl: unseen=0.1033 , seen=0.0102 , h=0.0186\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22000 loss tensor(1.3491, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09386440677966101\n",
      "gzsl: unseen=0.0935 , seen=0.0070 , h=0.0130\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 22200 loss tensor(1.2885, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15065536723163842\n",
      "gzsl: unseen=0.1507 , seen=0.0095 , h=0.0178\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22400 loss tensor(1.3740, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12228248587570624\n",
      "gzsl: unseen=0.1223 , seen=0.0164 , h=0.0290\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22600 loss tensor(1.3502, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08958757062146892\n",
      "gzsl: unseen=0.0896 , seen=0.0060 , h=0.0112\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22800 loss tensor(1.3701, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08088135593220339\n",
      "gzsl: unseen=0.0809 , seen=0.0052 , h=0.0097\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23000 loss tensor(1.1418, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08351412429378531\n",
      "gzsl: unseen=0.0835 , seen=0.0053 , h=0.0099\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23200 loss tensor(1.8438, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1479774011299435\n",
      "gzsl: unseen=0.1476 , seen=0.0180 , h=0.0320\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23400 loss tensor(1.2393, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11684745762711865\n",
      "gzsl: unseen=0.1168 , seen=0.0079 , h=0.0148\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23600 loss tensor(1.6639, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12463841807909606\n",
      "gzsl: unseen=0.1246 , seen=0.0070 , h=0.0133\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23800 loss tensor(1.4367, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1119265536723164\n",
      "gzsl: unseen=0.1119 , seen=0.0095 , h=0.0174\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24000 loss tensor(1.5150, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1486553672316384\n",
      "gzsl: unseen=0.1487 , seen=0.0052 , h=0.0101\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24200 loss tensor(1.3410, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12491412429378532\n",
      "gzsl: unseen=0.1249 , seen=0.0091 , h=0.0170\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24400 loss tensor(1.4146, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12550169491525426\n",
      "gzsl: unseen=0.1252 , seen=0.0068 , h=0.0128\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24600 loss tensor(1.3130, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14033333333333334\n",
      "gzsl: unseen=0.1403 , seen=0.0113 , h=0.0209\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24800 loss tensor(1.5372, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.060152542372881354\n",
      "gzsl: unseen=0.0602 , seen=0.0038 , h=0.0071\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25000 loss tensor(1.5426, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08520903954802259\n",
      "gzsl: unseen=0.0849 , seen=0.0067 , h=0.0125\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25200 loss tensor(1.5523, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13316610169491525\n",
      "gzsl: unseen=0.1332 , seen=0.0147 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25400 loss tensor(1.5481, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12061016949152542\n",
      "gzsl: unseen=0.1206 , seen=0.0064 , h=0.0121\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25600 loss tensor(2.0139, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10248022598870055\n",
      "gzsl: unseen=0.1025 , seen=0.0060 , h=0.0113\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25800 loss tensor(1.6431, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12724858757062146\n",
      "gzsl: unseen=0.1272 , seen=0.0090 , h=0.0168\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26000 loss tensor(1.4234, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09392429378531073\n",
      "gzsl: unseen=0.0936 , seen=0.0095 , h=0.0173\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26200 loss tensor(1.1201, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12722598870056498\n",
      "gzsl: unseen=0.1272 , seen=0.0086 , h=0.0161\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26400 loss tensor(1.7373, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.125954802259887\n",
      "gzsl: unseen=0.1260 , seen=0.0084 , h=0.0158\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26600 loss tensor(1.3181, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13840677966101694\n",
      "gzsl: unseen=0.1381 , seen=0.0128 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26800 loss tensor(1.6630, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1186327683615819\n",
      "gzsl: unseen=0.1186 , seen=0.0097 , h=0.0179\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27000 loss tensor(0.8500, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1211638418079096\n",
      "gzsl: unseen=0.1212 , seen=0.0107 , h=0.0197\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27200 loss tensor(1.7199, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09158192090395481\n",
      "gzsl: unseen=0.0916 , seen=0.0126 , h=0.0221\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27400 loss tensor(1.6122, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12437288135593219\n",
      "gzsl: unseen=0.1244 , seen=0.0036 , h=0.0070\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27600 loss tensor(1.4893, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.11823389830508475\n",
      "gzsl: unseen=0.1182 , seen=0.0095 , h=0.0176\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27800 loss tensor(1.5306, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09113446327683616\n",
      "gzsl: unseen=0.0911 , seen=0.0114 , h=0.0203\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28000 loss tensor(1.3151, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1440428525743524\n",
      "gzsl: unseen=0.1440 , seen=0.0072 , h=0.0137\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28200 loss tensor(1.4473, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12861581920903956\n",
      "gzsl: unseen=0.1283 , seen=0.0123 , h=0.0225\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28400 loss tensor(1.8945, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09583050847457628\n",
      "gzsl: unseen=0.0958 , seen=0.0067 , h=0.0125\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28600 loss tensor(1.1662, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13297627118644068\n",
      "gzsl: unseen=0.1330 , seen=0.0103 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28800 loss tensor(1.3642, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11396610169491525\n",
      "gzsl: unseen=0.1140 , seen=0.0075 , h=0.0140\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29000 loss tensor(1.2393, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08477966101694914\n",
      "gzsl: unseen=0.0848 , seen=0.0049 , h=0.0093\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29200 loss tensor(1.4125, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10911299435028247\n",
      "gzsl: unseen=0.1091 , seen=0.0093 , h=0.0171\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29400 loss tensor(1.2077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07853107344632768\n",
      "gzsl: unseen=0.0785 , seen=0.0049 , h=0.0092\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29600 loss tensor(1.3828, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12421468926553672\n",
      "gzsl: unseen=0.1242 , seen=0.0119 , h=0.0216\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29800 loss tensor(1.6197, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12940677966101696\n",
      "gzsl: unseen=0.1294 , seen=0.0079 , h=0.0148\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30000 loss tensor(1.5801, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14558757062146893\n",
      "gzsl: unseen=0.1456 , seen=0.0119 , h=0.0221\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30200 loss tensor(1.8625, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08842372881355934\n",
      "gzsl: unseen=0.0884 , seen=0.0099 , h=0.0178\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30400 loss tensor(1.3136, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10408474576271186\n",
      "gzsl: unseen=0.1041 , seen=0.0063 , h=0.0119\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30600 loss tensor(1.4735, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10863724549621574\n",
      "gzsl: unseen=0.1086 , seen=0.0074 , h=0.0138\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30800 loss tensor(0.8817, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08075706214689266\n",
      "gzsl: unseen=0.0808 , seen=0.0042 , h=0.0079\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31000 loss tensor(1.6004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10288700564971749\n",
      "gzsl: unseen=0.1025 , seen=0.0044 , h=0.0084\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31200 loss tensor(1.3885, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10301129943502824\n",
      "gzsl: unseen=0.1030 , seen=0.0063 , h=0.0118\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31400 loss tensor(1.1638, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14491977401129943\n",
      "gzsl: unseen=0.1449 , seen=0.0146 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31600 loss tensor(1.3199, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1750960451977401\n",
      "gzsl: unseen=0.1751 , seen=0.0175 , h=0.0319\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31800 loss tensor(1.3693, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1389423728813559\n",
      "gzsl: unseen=0.1389 , seen=0.0082 , h=0.0155\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32000 loss tensor(1.4223, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14212655367231639\n",
      "gzsl: unseen=0.1421 , seen=0.0089 , h=0.0167\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32200 loss tensor(1.4621, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08125988700564973\n",
      "gzsl: unseen=0.0813 , seen=0.0084 , h=0.0152\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32400 loss tensor(1.1969, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.103245197740113\n",
      "gzsl: unseen=0.1032 , seen=0.0056 , h=0.0107\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32600 loss tensor(1.7232, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13702824858757062\n",
      "gzsl: unseen=0.1370 , seen=0.0104 , h=0.0194\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32800 loss tensor(1.5147, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11952542372881356\n",
      "gzsl: unseen=0.1192 , seen=0.0077 , h=0.0146\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33000 loss tensor(1.1978, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10696497175141242\n",
      "gzsl: unseen=0.1070 , seen=0.0053 , h=0.0101\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 33200 loss tensor(1.3967, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09933785310734464\n",
      "gzsl: unseen=0.0993 , seen=0.0084 , h=0.0155\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33400 loss tensor(1.4507, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11763841807909606\n",
      "gzsl: unseen=0.1176 , seen=0.0186 , h=0.0321\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33600 loss tensor(1.3585, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12858757062146892\n",
      "gzsl: unseen=0.1286 , seen=0.0056 , h=0.0107\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33800 loss tensor(1.5029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14271638418079097\n",
      "gzsl: unseen=0.1427 , seen=0.0134 , h=0.0245\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34000 loss tensor(1.2471, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11109830508474577\n",
      "gzsl: unseen=0.1111 , seen=0.0140 , h=0.0248\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34200 loss tensor(1.4531, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18086101694915258\n",
      "gzsl: unseen=0.1809 , seen=0.0146 , h=0.0270\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34400 loss tensor(1.3226, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15012994350282485\n",
      "gzsl: unseen=0.1498 , seen=0.0149 , h=0.0270\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34600 loss tensor(1.2798, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10601016949152543\n",
      "gzsl: unseen=0.1060 , seen=0.0092 , h=0.0169\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34800 loss tensor(1.3487, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15437627118644065\n",
      "gzsl: unseen=0.1544 , seen=0.0139 , h=0.0256\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35000 loss tensor(1.5788, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12489265536723164\n",
      "gzsl: unseen=0.1249 , seen=0.0175 , h=0.0308\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35200 loss tensor(1.2828, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10759209039548023\n",
      "gzsl: unseen=0.1073 , seen=0.0120 , h=0.0216\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35400 loss tensor(1.2396, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14400564971751412\n",
      "gzsl: unseen=0.1440 , seen=0.0085 , h=0.0160\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35600 loss tensor(1.1679, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08910847457627119\n",
      "gzsl: unseen=0.0891 , seen=0.0061 , h=0.0114\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35800 loss tensor(1.5862, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15082824858757063\n",
      "gzsl: unseen=0.1508 , seen=0.0129 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36000 loss tensor(1.1348, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10344406779661018\n",
      "gzsl: unseen=0.1034 , seen=0.0063 , h=0.0118\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36200 loss tensor(1.2468, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10579887005649719\n",
      "gzsl: unseen=0.1058 , seen=0.0058 , h=0.0110\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36400 loss tensor(1.2389, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1335728813559322\n",
      "gzsl: unseen=0.1336 , seen=0.0064 , h=0.0122\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36600 loss tensor(1.1329, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09812090395480225\n",
      "gzsl: unseen=0.0981 , seen=0.0129 , h=0.0228\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36800 loss tensor(1.3697, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1429943502824859\n",
      "gzsl: unseen=0.1430 , seen=0.0102 , h=0.0191\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37000 loss tensor(1.1097, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10486440677966101\n",
      "gzsl: unseen=0.1049 , seen=0.0100 , h=0.0182\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37200 loss tensor(1.5460, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07652542372881356\n",
      "gzsl: unseen=0.0765 , seen=0.0063 , h=0.0117\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37400 loss tensor(1.6975, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10033333333333333\n",
      "gzsl: unseen=0.1003 , seen=0.0087 , h=0.0160\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37600 loss tensor(1.5117, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11397627118644067\n",
      "gzsl: unseen=0.1136 , seen=0.0166 , h=0.0290\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37800 loss tensor(1.7302, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16035141242937853\n",
      "gzsl: unseen=0.1604 , seen=0.0118 , h=0.0219\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38000 loss tensor(1.8006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09088587570621469\n",
      "gzsl: unseen=0.0909 , seen=0.0063 , h=0.0118\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38200 loss tensor(1.3758, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16199209039548024\n",
      "gzsl: unseen=0.1620 , seen=0.0116 , h=0.0216\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38400 loss tensor(1.3691, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10075932203389833\n",
      "gzsl: unseen=0.1008 , seen=0.0118 , h=0.0211\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38600 loss tensor(1.4050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.12713894041147\n",
      "gzsl: unseen=0.1268 , seen=0.0142 , h=0.0255\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38800 loss tensor(1.0872, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11223264044344954\n",
      "gzsl: unseen=0.1122 , seen=0.0065 , h=0.0123\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39000 loss tensor(1.4904, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10324858757062147\n",
      "gzsl: unseen=0.1029 , seen=0.0104 , h=0.0189\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39200 loss tensor(1.4620, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15109378531073447\n",
      "gzsl: unseen=0.1511 , seen=0.0198 , h=0.0350\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39400 loss tensor(1.1182, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10134350282485877\n",
      "gzsl: unseen=0.1013 , seen=0.0111 , h=0.0201\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39600 loss tensor(1.0666, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10245423728813557\n",
      "gzsl: unseen=0.1025 , seen=0.0080 , h=0.0148\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39800 loss tensor(1.0812, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14478870056497176\n",
      "gzsl: unseen=0.1448 , seen=0.0126 , h=0.0233\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40000 loss tensor(1.3814, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11572542372881356\n",
      "gzsl: unseen=0.1157 , seen=0.0105 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40200 loss tensor(1.2532, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08382598870056497\n",
      "gzsl: unseen=0.0838 , seen=0.0097 , h=0.0173\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40400 loss tensor(1.4764, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08886327683615822\n",
      "gzsl: unseen=0.0889 , seen=0.0118 , h=0.0209\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40600 loss tensor(1.1783, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08927005649717515\n",
      "gzsl: unseen=0.0893 , seen=0.0144 , h=0.0248\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40800 loss tensor(1.2612, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1380271186440678\n",
      "gzsl: unseen=0.1377 , seen=0.0167 , h=0.0297\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41000 loss tensor(1.2407, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11123728813559323\n",
      "gzsl: unseen=0.1112 , seen=0.0091 , h=0.0169\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41200 loss tensor(1.1803, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16215701950751518\n",
      "gzsl: unseen=0.1618 , seen=0.0128 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41400 loss tensor(1.1836, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11802372881355931\n",
      "gzsl: unseen=0.1180 , seen=0.0118 , h=0.0215\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41600 loss tensor(1.2182, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17190282485875705\n",
      "gzsl: unseen=0.1716 , seen=0.0201 , h=0.0359\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41800 loss tensor(1.2173, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13985649717514123\n",
      "gzsl: unseen=0.1395 , seen=0.0164 , h=0.0293\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42000 loss tensor(1.2282, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.115754802259887\n",
      "gzsl: unseen=0.1158 , seen=0.0083 , h=0.0156\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42200 loss tensor(1.5604, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1296768361581921\n",
      "gzsl: unseen=0.1293 , seen=0.0132 , h=0.0239\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42400 loss tensor(1.5622, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14502937853107342\n",
      "gzsl: unseen=0.1450 , seen=0.0125 , h=0.0230\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42600 loss tensor(1.0040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1450723163841808\n",
      "gzsl: unseen=0.1451 , seen=0.0148 , h=0.0268\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42800 loss tensor(1.3943, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17109604519774013\n",
      "gzsl: unseen=0.1711 , seen=0.0166 , h=0.0303\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43000 loss tensor(1.2199, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09448022598870058\n",
      "gzsl: unseen=0.0945 , seen=0.0058 , h=0.0110\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43200 loss tensor(1.3175, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09084632768361582\n",
      "gzsl: unseen=0.0908 , seen=0.0157 , h=0.0267\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43400 loss tensor(1.3667, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.137417338788233\n",
      "gzsl: unseen=0.1367 , seen=0.0166 , h=0.0295\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43600 loss tensor(1.0191, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09150169491525424\n",
      "gzsl: unseen=0.0915 , seen=0.0101 , h=0.0182\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43800 loss tensor(1.2072, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11904426261445548\n",
      "gzsl: unseen=0.1187 , seen=0.0121 , h=0.0220\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44000 loss tensor(1.2849, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18483728813559325\n",
      "gzsl: unseen=0.1838 , seen=0.0155 , h=0.0286\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 44200 loss tensor(1.3711, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11608813559322034\n",
      "gzsl: unseen=0.1157 , seen=0.0187 , h=0.0321\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44400 loss tensor(1.3501, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10933446327683616\n",
      "gzsl: unseen=0.1093 , seen=0.0070 , h=0.0132\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44600 loss tensor(1.1226, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10802711864406779\n",
      "gzsl: unseen=0.1080 , seen=0.0114 , h=0.0206\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44800 loss tensor(1.3330, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11614350282485876\n",
      "gzsl: unseen=0.1161 , seen=0.0098 , h=0.0181\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45000 loss tensor(1.1216, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15964745762711863\n",
      "gzsl: unseen=0.1593 , seen=0.0157 , h=0.0285\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45200 loss tensor(1.0971, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1359084745762712\n",
      "gzsl: unseen=0.1359 , seen=0.0087 , h=0.0163\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45400 loss tensor(1.1333, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10534350282485874\n",
      "gzsl: unseen=0.1050 , seen=0.0113 , h=0.0204\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45600 loss tensor(0.9714, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18154350282485873\n",
      "gzsl: unseen=0.1812 , seen=0.0160 , h=0.0294\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45800 loss tensor(0.9188, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12954237288135592\n",
      "gzsl: unseen=0.1295 , seen=0.0118 , h=0.0217\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46000 loss tensor(1.1966, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09450734463276836\n",
      "gzsl: unseen=0.0945 , seen=0.0102 , h=0.0185\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46200 loss tensor(1.1298, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11198870056497173\n",
      "gzsl: unseen=0.1120 , seen=0.0146 , h=0.0258\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46400 loss tensor(1.1621, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09477853107344635\n",
      "gzsl: unseen=0.0944 , seen=0.0119 , h=0.0212\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46600 loss tensor(1.0289, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1299593220338983\n",
      "gzsl: unseen=0.1300 , seen=0.0197 , h=0.0342\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46800 loss tensor(1.2241, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1352892228973457\n",
      "gzsl: unseen=0.1346 , seen=0.0112 , h=0.0207\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47000 loss tensor(1.5756, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1468124293785311\n",
      "gzsl: unseen=0.1468 , seen=0.0140 , h=0.0256\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47200 loss tensor(1.1667, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1350090395480226\n",
      "gzsl: unseen=0.1343 , seen=0.0112 , h=0.0207\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47400 loss tensor(0.9675, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14287457627118644\n",
      "gzsl: unseen=0.1429 , seen=0.0128 , h=0.0234\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47600 loss tensor(1.5766, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.19642937853107345\n",
      "gzsl: unseen=0.1961 , seen=0.0117 , h=0.0220\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47800 loss tensor(1.1424, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12793220338983052\n",
      "gzsl: unseen=0.1279 , seen=0.0088 , h=0.0165\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48000 loss tensor(1.2002, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1766128190142217\n",
      "gzsl: unseen=0.1759 , seen=0.0140 , h=0.0260\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48200 loss tensor(1.5017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11467025131502045\n",
      "gzsl: unseen=0.1143 , seen=0.0083 , h=0.0156\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48400 loss tensor(1.5837, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1305502824858757\n",
      "gzsl: unseen=0.1306 , seen=0.0120 , h=0.0221\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48600 loss tensor(1.4381, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1225278784336645\n",
      "gzsl: unseen=0.1218 , seen=0.0245 , h=0.0408\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48800 loss tensor(1.1002, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1195131891681278\n",
      "gzsl: unseen=0.1185 , seen=0.0149 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49000 loss tensor(1.3425, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10933333333333334\n",
      "gzsl: unseen=0.1090 , seen=0.0148 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49200 loss tensor(1.3341, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1608632768361582\n",
      "gzsl: unseen=0.1602 , seen=0.0172 , h=0.0310\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49400 loss tensor(1.0163, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1476263783362556\n",
      "gzsl: unseen=0.1466 , seen=0.0189 , h=0.0335\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49600 loss tensor(1.4109, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11736949152542371\n",
      "gzsl: unseen=0.1174 , seen=0.0091 , h=0.0169\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 49800 loss tensor(1.3004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12864858757062148\n",
      "gzsl: unseen=0.1286 , seen=0.0121 , h=0.0221\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50000 loss tensor(1.4863, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1032768361581921\n",
      "gzsl: unseen=0.1033 , seen=0.0153 , h=0.0267\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50200 loss tensor(1.3739, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.046445197740113\n",
      "gzsl: unseen=0.0458 , seen=0.0070 , h=0.0122\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50400 loss tensor(1.2904, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10004180790960451\n",
      "gzsl: unseen=0.1000 , seen=0.0129 , h=0.0229\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50600 loss tensor(1.2679, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11180810442236508\n",
      "gzsl: unseen=0.1118 , seen=0.0124 , h=0.0224\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50800 loss tensor(1.4871, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1021097993376193\n",
      "gzsl: unseen=0.1018 , seen=0.0053 , h=0.0101\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51000 loss tensor(1.2173, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14911544905513346\n",
      "gzsl: unseen=0.1491 , seen=0.0185 , h=0.0329\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51200 loss tensor(1.0886, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09115725696473798\n",
      "gzsl: unseen=0.0908 , seen=0.0157 , h=0.0267\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51400 loss tensor(1.5970, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14470960451977402\n",
      "gzsl: unseen=0.1444 , seen=0.0140 , h=0.0255\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51600 loss tensor(1.4497, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09154124293785312\n",
      "gzsl: unseen=0.0912 , seen=0.0135 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51800 loss tensor(1.0388, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10892542372881357\n",
      "gzsl: unseen=0.1089 , seen=0.0119 , h=0.0215\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52000 loss tensor(1.3922, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10871451392947595\n",
      "gzsl: unseen=0.1080 , seen=0.0118 , h=0.0214\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52200 loss tensor(1.3339, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10739887005649716\n",
      "gzsl: unseen=0.1067 , seen=0.0194 , h=0.0328\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52400 loss tensor(1.1241, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09490979933761931\n",
      "gzsl: unseen=0.0949 , seen=0.0079 , h=0.0145\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52600 loss tensor(1.3329, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06117420611728035\n",
      "gzsl: unseen=0.0612 , seen=0.0140 , h=0.0228\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52800 loss tensor(1.2301, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1235265536723164\n",
      "gzsl: unseen=0.1232 , seen=0.0157 , h=0.0278\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53000 loss tensor(1.3380, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08058079096045198\n",
      "gzsl: unseen=0.0806 , seen=0.0100 , h=0.0179\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53200 loss tensor(1.4728, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1351495421780635\n",
      "gzsl: unseen=0.1348 , seen=0.0152 , h=0.0274\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53400 loss tensor(1.3344, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11080564971751412\n",
      "gzsl: unseen=0.1105 , seen=0.0103 , h=0.0188\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53600 loss tensor(1.4402, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12939586986167934\n",
      "gzsl: unseen=0.1287 , seen=0.0160 , h=0.0284\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53800 loss tensor(0.9871, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12817553087862849\n",
      "gzsl: unseen=0.1271 , seen=0.0153 , h=0.0273\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54000 loss tensor(1.6718, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13675745178258328\n",
      "gzsl: unseen=0.1361 , seen=0.0120 , h=0.0221\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54200 loss tensor(1.4662, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12654143775569843\n",
      "gzsl: unseen=0.1262 , seen=0.0123 , h=0.0225\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54400 loss tensor(1.1465, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15099196247734784\n",
      "gzsl: unseen=0.1510 , seen=0.0130 , h=0.0240\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54600 loss tensor(1.0785, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10427722579388271\n",
      "gzsl: unseen=0.1039 , seen=0.0152 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54800 loss tensor(1.3336, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11524426261445547\n",
      "gzsl: unseen=0.1152 , seen=0.0103 , h=0.0189\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55000 loss tensor(1.4343, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10168833041106565\n",
      "gzsl: unseen=0.1013 , seen=0.0106 , h=0.0191\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55200 loss tensor(1.4583, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.18863654782778105\n",
      "gzsl: unseen=0.1873 , seen=0.0205 , h=0.0370\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55400 loss tensor(1.8489, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1281866354958114\n",
      "gzsl: unseen=0.1278 , seen=0.0093 , h=0.0173\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55600 loss tensor(1.3316, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14575519189557762\n",
      "gzsl: unseen=0.1444 , seen=0.0157 , h=0.0283\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55800 loss tensor(1.0934, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13892222871615037\n",
      "gzsl: unseen=0.1389 , seen=0.0063 , h=0.0121\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56000 loss tensor(1.1993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12365330216247808\n",
      "gzsl: unseen=0.1237 , seen=0.0080 , h=0.0150\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56200 loss tensor(1.3803, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09896403662575491\n",
      "gzsl: unseen=0.0986 , seen=0.0141 , h=0.0246\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56400 loss tensor(0.8963, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15531092928112217\n",
      "gzsl: unseen=0.1546 , seen=0.0238 , h=0.0413\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56600 loss tensor(1.3935, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1542035846483538\n",
      "gzsl: unseen=0.1542 , seen=0.0173 , h=0.0311\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56800 loss tensor(1.4319, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09160245470485096\n",
      "gzsl: unseen=0.0913 , seen=0.0204 , h=0.0334\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57000 loss tensor(1.3249, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10573894041147\n",
      "gzsl: unseen=0.1057 , seen=0.0062 , h=0.0116\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57200 loss tensor(1.5359, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1374941323070476\n",
      "gzsl: unseen=0.1361 , seen=0.0133 , h=0.0242\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57400 loss tensor(1.1276, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15068739528540814\n",
      "gzsl: unseen=0.1500 , seen=0.0136 , h=0.0249\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57600 loss tensor(1.6070, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10708813559322035\n",
      "gzsl: unseen=0.1067 , seen=0.0105 , h=0.0191\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57800 loss tensor(1.2362, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17009285018507697\n",
      "gzsl: unseen=0.1701 , seen=0.0137 , h=0.0254\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58000 loss tensor(1.1994, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12285217221897525\n",
      "gzsl: unseen=0.1215 , seen=0.0143 , h=0.0256\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58200 loss tensor(1.0690, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13888626534190532\n",
      "gzsl: unseen=0.1389 , seen=0.0111 , h=0.0206\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58400 loss tensor(1.3464, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17215047730372107\n",
      "gzsl: unseen=0.1718 , seen=0.0092 , h=0.0175\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58600 loss tensor(1.1390, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.172598129748685\n",
      "gzsl: unseen=0.1709 , seen=0.0208 , h=0.0370\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58800 loss tensor(1.2653, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16695493605931283\n",
      "gzsl: unseen=0.1666 , seen=0.0203 , h=0.0361\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59000 loss tensor(1.2949, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12876875121761153\n",
      "gzsl: unseen=0.1284 , seen=0.0131 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59200 loss tensor(1.2473, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14734050263004092\n",
      "gzsl: unseen=0.1463 , seen=0.0151 , h=0.0274\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59400 loss tensor(0.9974, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13414143775569845\n",
      "gzsl: unseen=0.1338 , seen=0.0124 , h=0.0227\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59600 loss tensor(1.3193, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18036162088447302\n",
      "gzsl: unseen=0.1780 , seen=0.0122 , h=0.0229\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59800 loss tensor(1.2447, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08362392363140465\n",
      "gzsl: unseen=0.0836 , seen=0.0089 , h=0.0162\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60000 loss tensor(1.1024, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15272865770504576\n",
      "gzsl: unseen=0.1520 , seen=0.0153 , h=0.0278\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60200 loss tensor(1.1637, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16567157607636862\n",
      "gzsl: unseen=0.1646 , seen=0.0140 , h=0.0259\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60400 loss tensor(1.6468, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15957233586596534\n",
      "gzsl: unseen=0.1592 , seen=0.0185 , h=0.0332\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60600 loss tensor(1.4088, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09626370543541789\n",
      "gzsl: unseen=0.0949 , seen=0.0178 , h=0.0300\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 60800 loss tensor(1.1969, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13770866939411652\n",
      "gzsl: unseen=0.1377 , seen=0.0155 , h=0.0279\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61000 loss tensor(1.4705, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10207816091954022\n",
      "gzsl: unseen=0.1021 , seen=0.0108 , h=0.0195\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61200 loss tensor(1.2402, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1461032144944477\n",
      "gzsl: unseen=0.1461 , seen=0.0069 , h=0.0132\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61400 loss tensor(1.1919, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15613843756088056\n",
      "gzsl: unseen=0.1548 , seen=0.0214 , h=0.0377\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61600 loss tensor(0.9518, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16869830508474576\n",
      "gzsl: unseen=0.1687 , seen=0.0091 , h=0.0172\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61800 loss tensor(0.9639, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16534517458252007\n",
      "gzsl: unseen=0.1647 , seen=0.0192 , h=0.0344\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62000 loss tensor(1.5054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11749249951295539\n",
      "gzsl: unseen=0.1161 , seen=0.0098 , h=0.0180\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62200 loss tensor(1.1274, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13552698227157606\n",
      "gzsl: unseen=0.1342 , seen=0.0170 , h=0.0302\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62400 loss tensor(1.6992, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1735845704266511\n",
      "gzsl: unseen=0.1726 , seen=0.0088 , h=0.0167\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62600 loss tensor(0.8447, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16242661211766996\n",
      "gzsl: unseen=0.1604 , seen=0.0149 , h=0.0272\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62800 loss tensor(1.5508, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1423708405471073\n",
      "gzsl: unseen=0.1424 , seen=0.0111 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63000 loss tensor(1.1300, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1641224624975648\n",
      "gzsl: unseen=0.1614 , seen=0.0183 , h=0.0328\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63200 loss tensor(1.4575, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11888268069355153\n",
      "gzsl: unseen=0.1189 , seen=0.0091 , h=0.0168\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63400 loss tensor(0.9869, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1651793103448276\n",
      "gzsl: unseen=0.1642 , seen=0.0146 , h=0.0269\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63600 loss tensor(1.3853, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15609736995908827\n",
      "gzsl: unseen=0.1561 , seen=0.0163 , h=0.0295\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63800 loss tensor(1.2749, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15800942918371325\n",
      "gzsl: unseen=0.1573 , seen=0.0199 , h=0.0354\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64000 loss tensor(1.1076, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11947722579388273\n",
      "gzsl: unseen=0.1191 , seen=0.0167 , h=0.0293\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64200 loss tensor(1.4068, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1584354178842782\n",
      "gzsl: unseen=0.1578 , seen=0.0144 , h=0.0264\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64400 loss tensor(1.4724, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14181394895772453\n",
      "gzsl: unseen=0.1418 , seen=0.0169 , h=0.0303\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64600 loss tensor(1.2026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13698250535749076\n",
      "gzsl: unseen=0.1363 , seen=0.0171 , h=0.0303\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64800 loss tensor(0.9324, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15297292031950124\n",
      "gzsl: unseen=0.1516 , seen=0.0156 , h=0.0282\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65000 loss tensor(1.2248, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09364784726280925\n",
      "gzsl: unseen=0.0933 , seen=0.0113 , h=0.0202\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65200 loss tensor(1.0739, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17564792518994743\n",
      "gzsl: unseen=0.1753 , seen=0.0224 , h=0.0397\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65400 loss tensor(1.0229, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14584219754529515\n",
      "gzsl: unseen=0.1452 , seen=0.0060 , h=0.0115\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65600 loss tensor(1.4290, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16297518020650692\n",
      "gzsl: unseen=0.1619 , seen=0.0198 , h=0.0353\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65800 loss tensor(1.0107, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1275488018702513\n",
      "gzsl: unseen=0.1265 , seen=0.0180 , h=0.0316\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66000 loss tensor(0.9877, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10823167738164816\n",
      "gzsl: unseen=0.1079 , seen=0.0177 , h=0.0304\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66200 loss tensor(0.9588, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.14489775959477888\n",
      "gzsl: unseen=0.1449 , seen=0.0157 , h=0.0283\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66400 loss tensor(1.2241, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13065143191116305\n",
      "gzsl: unseen=0.1303 , seen=0.0200 , h=0.0346\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66600 loss tensor(1.2218, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1464774595752971\n",
      "gzsl: unseen=0.1461 , seen=0.0166 , h=0.0298\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66800 loss tensor(1.3051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17011700759789597\n",
      "gzsl: unseen=0.1694 , seen=0.0262 , h=0.0454\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67000 loss tensor(1.6336, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16604188583674268\n",
      "gzsl: unseen=0.1654 , seen=0.0192 , h=0.0344\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67200 loss tensor(1.0861, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1427980871093075\n",
      "gzsl: unseen=0.1428 , seen=0.0212 , h=0.0369\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67400 loss tensor(1.1505, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14460691346044277\n",
      "gzsl: unseen=0.1446 , seen=0.0129 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67600 loss tensor(1.2429, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12284465225014611\n",
      "gzsl: unseen=0.1225 , seen=0.0116 , h=0.0212\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67800 loss tensor(1.2008, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13884882135203586\n",
      "gzsl: unseen=0.1378 , seen=0.0234 , h=0.0399\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68000 loss tensor(1.0574, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13314135247694348\n",
      "gzsl: unseen=0.1318 , seen=0.0153 , h=0.0274\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68200 loss tensor(1.4821, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12556968634326904\n",
      "gzsl: unseen=0.1252 , seen=0.0148 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68400 loss tensor(1.2981, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10648852522891097\n",
      "gzsl: unseen=0.1065 , seen=0.0107 , h=0.0195\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68600 loss tensor(0.8067, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14034050263004091\n",
      "gzsl: unseen=0.1403 , seen=0.0096 , h=0.0181\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68800 loss tensor(1.6163, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12886027664134037\n",
      "gzsl: unseen=0.1289 , seen=0.0127 , h=0.0231\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69000 loss tensor(1.0848, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11436894603545687\n",
      "gzsl: unseen=0.1144 , seen=0.0085 , h=0.0158\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69200 loss tensor(0.9767, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1659133839859731\n",
      "gzsl: unseen=0.1656 , seen=0.0217 , h=0.0384\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69400 loss tensor(1.6006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14628287551139685\n",
      "gzsl: unseen=0.1456 , seen=0.0131 , h=0.0240\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69600 loss tensor(0.9768, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1395113189168128\n",
      "gzsl: unseen=0.1388 , seen=0.0160 , h=0.0286\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69800 loss tensor(1.1830, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1804648353789207\n",
      "gzsl: unseen=0.1781 , seen=0.0198 , h=0.0356\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70000 loss tensor(1.5556, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12765934151568284\n",
      "gzsl: unseen=0.1270 , seen=0.0175 , h=0.0308\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70200 loss tensor(1.2019, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10506203000194819\n",
      "gzsl: unseen=0.1051 , seen=0.0147 , h=0.0258\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70400 loss tensor(1.3273, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14365821157218003\n",
      "gzsl: unseen=0.1437 , seen=0.0135 , h=0.0246\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70600 loss tensor(1.0471, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1443890902006624\n",
      "gzsl: unseen=0.1444 , seen=0.0108 , h=0.0202\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70800 loss tensor(1.1776, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16539248003117085\n",
      "gzsl: unseen=0.1651 , seen=0.0143 , h=0.0264\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71000 loss tensor(1.3077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08909230469511006\n",
      "gzsl: unseen=0.0891 , seen=0.0108 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71200 loss tensor(1.6141, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1535699201246834\n",
      "gzsl: unseen=0.1519 , seen=0.0262 , h=0.0447\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71400 loss tensor(1.0862, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.134726943308007\n",
      "gzsl: unseen=0.1347 , seen=0.0136 , h=0.0246\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71600 loss tensor(1.3163, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11773976232222871\n",
      "gzsl: unseen=0.1160 , seen=0.0143 , h=0.0255\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 71800 loss tensor(1.6787, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13638702513150203\n",
      "gzsl: unseen=0.1360 , seen=0.0134 , h=0.0245\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72000 loss tensor(1.3416, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14921153321644262\n",
      "gzsl: unseen=0.1492 , seen=0.0143 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72200 loss tensor(1.5519, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10921020845509449\n",
      "gzsl: unseen=0.1085 , seen=0.0121 , h=0.0217\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72400 loss tensor(1.0709, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1287198129748685\n",
      "gzsl: unseen=0.1284 , seen=0.0183 , h=0.0321\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72600 loss tensor(0.9970, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16558347944671734\n",
      "gzsl: unseen=0.1656 , seen=0.0155 , h=0.0283\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72800 loss tensor(1.1594, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12449760374050262\n",
      "gzsl: unseen=0.1228 , seen=0.0149 , h=0.0265\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73000 loss tensor(1.4599, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1489364114552893\n",
      "gzsl: unseen=0.1483 , seen=0.0188 , h=0.0334\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73200 loss tensor(1.2743, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1574351061757257\n",
      "gzsl: unseen=0.1554 , seen=0.0191 , h=0.0340\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73400 loss tensor(1.4045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14456992012468342\n",
      "gzsl: unseen=0.1429 , seen=0.0191 , h=0.0337\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73600 loss tensor(1.0526, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.18168684979544125\n",
      "gzsl: unseen=0.1813 , seen=0.0256 , h=0.0449\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73800 loss tensor(1.3242, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13637525813364504\n",
      "gzsl: unseen=0.1353 , seen=0.0133 , h=0.0242\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74000 loss tensor(1.1956, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13981979349308396\n",
      "gzsl: unseen=0.1391 , seen=0.0126 , h=0.0231\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74200 loss tensor(1.2750, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16156898499902592\n",
      "gzsl: unseen=0.1595 , seen=0.0155 , h=0.0283\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74400 loss tensor(1.5491, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11994751607247224\n",
      "gzsl: unseen=0.1196 , seen=0.0212 , h=0.0360\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74600 loss tensor(1.4044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13046354958114162\n",
      "gzsl: unseen=0.1288 , seen=0.0157 , h=0.0279\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74800 loss tensor(1.4226, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10775401931269733\n",
      "gzsl: unseen=0.1078 , seen=0.0092 , h=0.0169\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75000 loss tensor(1.0342, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08674945689930856\n",
      "gzsl: unseen=0.0867 , seen=0.0078 , h=0.0144\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75200 loss tensor(1.0694, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11760171439703876\n",
      "gzsl: unseen=0.1173 , seen=0.0176 , h=0.0306\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75400 loss tensor(1.3797, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15347897915449055\n",
      "gzsl: unseen=0.1531 , seen=0.0273 , h=0.0463\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75600 loss tensor(1.2884, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1313808688875901\n",
      "gzsl: unseen=0.1314 , seen=0.0151 , h=0.0270\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75800 loss tensor(1.1638, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13984558737580363\n",
      "gzsl: unseen=0.1398 , seen=0.0134 , h=0.0244\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76000 loss tensor(1.5378, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09827383596337425\n",
      "gzsl: unseen=0.0983 , seen=0.0094 , h=0.0172\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76200 loss tensor(1.0910, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12453508669394116\n",
      "gzsl: unseen=0.1232 , seen=0.0178 , h=0.0310\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76400 loss tensor(1.1423, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13362996298460939\n",
      "gzsl: unseen=0.1336 , seen=0.0114 , h=0.0210\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76600 loss tensor(1.3065, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16057327099162283\n",
      "gzsl: unseen=0.1606 , seen=0.0050 , h=0.0096\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76800 loss tensor(0.9051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11410114942528735\n",
      "gzsl: unseen=0.1141 , seen=0.0106 , h=0.0193\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77000 loss tensor(1.1195, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17308065458796026\n",
      "gzsl: unseen=0.1717 , seen=0.0220 , h=0.0390\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77200 loss tensor(0.9132, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.17504562633937268\n",
      "gzsl: unseen=0.1733 , seen=0.0167 , h=0.0305\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77400 loss tensor(1.2586, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.16823300214299633\n",
      "gzsl: unseen=0.1679 , seen=0.0078 , h=0.0149\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77600 loss tensor(1.0969, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12138796025715956\n",
      "gzsl: unseen=0.1214 , seen=0.0105 , h=0.0194\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77800 loss tensor(0.8270, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.129282368984999\n",
      "gzsl: unseen=0.1286 , seen=0.0146 , h=0.0263\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78000 loss tensor(1.6884, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12275519189557764\n",
      "gzsl: unseen=0.1228 , seen=0.0081 , h=0.0152\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78200 loss tensor(1.0090, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10052900837716734\n",
      "gzsl: unseen=0.1005 , seen=0.0085 , h=0.0157\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78400 loss tensor(1.1740, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1420064289888954\n",
      "gzsl: unseen=0.1417 , seen=0.0145 , h=0.0264\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78600 loss tensor(0.8794, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1383147477108903\n",
      "gzsl: unseen=0.1383 , seen=0.0144 , h=0.0260\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78800 loss tensor(1.3310, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13731564387297876\n",
      "gzsl: unseen=0.1373 , seen=0.0128 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79000 loss tensor(1.5267, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0913507110851354\n",
      "gzsl: unseen=0.0903 , seen=0.0089 , h=0.0161\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79200 loss tensor(0.8504, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1399774400935126\n",
      "gzsl: unseen=0.1400 , seen=0.0149 , h=0.0269\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79400 loss tensor(1.1025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08775297097214103\n",
      "gzsl: unseen=0.0878 , seen=0.0112 , h=0.0198\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79600 loss tensor(1.2926, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.17492242353399573\n",
      "gzsl: unseen=0.1746 , seen=0.0133 , h=0.0247\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79800 loss tensor(1.3924, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09270134424313267\n",
      "gzsl: unseen=0.0913 , seen=0.0136 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80000 loss tensor(1.2159, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08193504773037211\n",
      "gzsl: unseen=0.0819 , seen=0.0079 , h=0.0144\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80200 loss tensor(1.0477, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12502150789012273\n",
      "gzsl: unseen=0.1250 , seen=0.0071 , h=0.0134\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80400 loss tensor(1.0386, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14108139489577246\n",
      "gzsl: unseen=0.1411 , seen=0.0173 , h=0.0308\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80600 loss tensor(1.2077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10607835573738555\n",
      "gzsl: unseen=0.1061 , seen=0.0079 , h=0.0147\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80800 loss tensor(0.8134, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11991677381648158\n",
      "gzsl: unseen=0.1196 , seen=0.0092 , h=0.0171\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81000 loss tensor(1.4617, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15788875901032534\n",
      "gzsl: unseen=0.1579 , seen=0.0101 , h=0.0190\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81200 loss tensor(1.5683, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14375538671342294\n",
      "gzsl: unseen=0.1438 , seen=0.0139 , h=0.0253\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81400 loss tensor(1.1285, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13832039742840443\n",
      "gzsl: unseen=0.1376 , seen=0.0225 , h=0.0387\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81600 loss tensor(0.9532, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13648852522891095\n",
      "gzsl: unseen=0.1365 , seen=0.0087 , h=0.0163\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81800 loss tensor(1.1015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1246211182544321\n",
      "gzsl: unseen=0.1246 , seen=0.0086 , h=0.0161\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82000 loss tensor(1.4708, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1351495421780635\n",
      "gzsl: unseen=0.1348 , seen=0.0091 , h=0.0170\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82200 loss tensor(1.0127, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14854502240405223\n",
      "gzsl: unseen=0.1482 , seen=0.0091 , h=0.0171\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82400 loss tensor(1.3791, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1067517594256917\n",
      "gzsl: unseen=0.1061 , seen=0.0102 , h=0.0185\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82600 loss tensor(0.9750, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14226592635885446\n",
      "gzsl: unseen=0.1423 , seen=0.0115 , h=0.0213\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 82800 loss tensor(1.1912, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12912300798753165\n",
      "gzsl: unseen=0.1284 , seen=0.0115 , h=0.0212\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83000 loss tensor(1.1233, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12359022014416521\n",
      "gzsl: unseen=0.1236 , seen=0.0085 , h=0.0159\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83200 loss tensor(0.8464, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11050340931229301\n",
      "gzsl: unseen=0.1102 , seen=0.0165 , h=0.0287\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83400 loss tensor(1.0542, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08322435223066434\n",
      "gzsl: unseen=0.0829 , seen=0.0139 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83600 loss tensor(0.9827, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09584691213715177\n",
      "gzsl: unseen=0.0955 , seen=0.0118 , h=0.0210\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83800 loss tensor(1.2018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.15497934930839666\n",
      "gzsl: unseen=0.1536 , seen=0.0222 , h=0.0389\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84000 loss tensor(1.3228, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11936263393726865\n",
      "gzsl: unseen=0.1183 , seen=0.0199 , h=0.0341\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84200 loss tensor(1.1741, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08251209818819405\n",
      "gzsl: unseen=0.0825 , seen=0.0073 , h=0.0134\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84400 loss tensor(1.1418, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13568065458796025\n",
      "gzsl: unseen=0.1357 , seen=0.0134 , h=0.0243\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84600 loss tensor(0.9568, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11656594584063901\n",
      "gzsl: unseen=0.1159 , seen=0.0143 , h=0.0255\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84800 loss tensor(1.2198, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1396213520358465\n",
      "gzsl: unseen=0.1383 , seen=0.0144 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85000 loss tensor(1.2040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1076230274693162\n",
      "gzsl: unseen=0.1076 , seen=0.0088 , h=0.0163\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85200 loss tensor(1.2093, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11728287551139684\n",
      "gzsl: unseen=0.1173 , seen=0.0073 , h=0.0137\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85400 loss tensor(1.3398, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11468396281552222\n",
      "gzsl: unseen=0.1140 , seen=0.0177 , h=0.0307\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85600 loss tensor(1.2870, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10357989479836353\n",
      "gzsl: unseen=0.1032 , seen=0.0127 , h=0.0226\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85800 loss tensor(1.4598, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12040627313461913\n",
      "gzsl: unseen=0.1204 , seen=0.0098 , h=0.0182\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86000 loss tensor(1.1747, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11280264952269628\n",
      "gzsl: unseen=0.1128 , seen=0.0098 , h=0.0180\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86200 loss tensor(1.4607, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11234050263004093\n",
      "gzsl: unseen=0.1123 , seen=0.0058 , h=0.0111\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86400 loss tensor(0.9250, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14098589518799923\n",
      "gzsl: unseen=0.1396 , seen=0.0132 , h=0.0240\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86600 loss tensor(1.2175, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09380927332943698\n",
      "gzsl: unseen=0.0931 , seen=0.0191 , h=0.0317\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86800 loss tensor(1.2200, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08702111825443211\n",
      "gzsl: unseen=0.0870 , seen=0.0193 , h=0.0316\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87000 loss tensor(1.3877, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06748626534190531\n",
      "gzsl: unseen=0.0675 , seen=0.0086 , h=0.0153\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87200 loss tensor(1.3369, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0871902201441652\n",
      "gzsl: unseen=0.0865 , seen=0.0081 , h=0.0148\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87400 loss tensor(1.2116, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08166027664134035\n",
      "gzsl: unseen=0.0817 , seen=0.0095 , h=0.0171\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87600 loss tensor(0.9277, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07938344048314824\n",
      "gzsl: unseen=0.0794 , seen=0.0083 , h=0.0151\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87800 loss tensor(0.9475, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10956423144360024\n",
      "gzsl: unseen=0.1096 , seen=0.0081 , h=0.0151\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88000 loss tensor(1.3264, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11065922462497564\n",
      "gzsl: unseen=0.1086 , seen=0.0246 , h=0.0401\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88200 loss tensor(1.0347, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.09339832456653027\n",
      "gzsl: unseen=0.0931 , seen=0.0136 , h=0.0237\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88400 loss tensor(1.0045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09303978180401325\n",
      "gzsl: unseen=0.0924 , seen=0.0071 , h=0.0132\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88600 loss tensor(1.0958, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1429567114747711\n",
      "gzsl: unseen=0.1419 , seen=0.0155 , h=0.0279\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88800 loss tensor(1.1346, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10614634716540035\n",
      "gzsl: unseen=0.1058 , seen=0.0106 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89000 loss tensor(0.8873, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11449982466393922\n",
      "gzsl: unseen=0.1145 , seen=0.0075 , h=0.0140\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89200 loss tensor(1.0390, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08171361776738749\n",
      "gzsl: unseen=0.0817 , seen=0.0119 , h=0.0208\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89400 loss tensor(1.0488, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12549191505941948\n",
      "gzsl: unseen=0.1255 , seen=0.0137 , h=0.0247\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89600 loss tensor(1.0109, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09820019481784531\n",
      "gzsl: unseen=0.0982 , seen=0.0068 , h=0.0127\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89800 loss tensor(1.3094, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13395651665692576\n",
      "gzsl: unseen=0.1340 , seen=0.0141 , h=0.0255\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90000 loss tensor(1.2506, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10690492889148645\n",
      "gzsl: unseen=0.1069 , seen=0.0113 , h=0.0204\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90200 loss tensor(1.0656, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13625334112604717\n",
      "gzsl: unseen=0.1359 , seen=0.0129 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90400 loss tensor(1.0790, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12433536222203669\n",
      "gzsl: unseen=0.1233 , seen=0.0112 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90600 loss tensor(1.0356, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10423487239431131\n",
      "gzsl: unseen=0.1042 , seen=0.0121 , h=0.0217\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90800 loss tensor(1.2844, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06482976816676407\n",
      "gzsl: unseen=0.0648 , seen=0.0082 , h=0.0145\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91000 loss tensor(1.0859, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0613857003701539\n",
      "gzsl: unseen=0.0614 , seen=0.0097 , h=0.0167\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91200 loss tensor(0.8500, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.06730321449444769\n",
      "gzsl: unseen=0.0670 , seen=0.0116 , h=0.0197\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91400 loss tensor(1.2180, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12027555036041303\n",
      "gzsl: unseen=0.1199 , seen=0.0127 , h=0.0229\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91600 loss tensor(1.3393, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10248330411065654\n",
      "gzsl: unseen=0.1018 , seen=0.0200 , h=0.0335\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91800 loss tensor(0.8909, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13123432690434444\n",
      "gzsl: unseen=0.1302 , seen=0.0129 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92000 loss tensor(0.8037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12479119423339177\n",
      "gzsl: unseen=0.1248 , seen=0.0155 , h=0.0276\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92200 loss tensor(1.2329, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07982766045822627\n",
      "gzsl: unseen=0.0798 , seen=0.0114 , h=0.0199\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92400 loss tensor(1.0915, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10029756477693356\n",
      "gzsl: unseen=0.1003 , seen=0.0114 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92600 loss tensor(1.0288, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1195830898110267\n",
      "gzsl: unseen=0.1192 , seen=0.0105 , h=0.0193\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92800 loss tensor(0.8920, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12966125073056692\n",
      "gzsl: unseen=0.1297 , seen=0.0184 , h=0.0322\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93000 loss tensor(1.0995, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1395552308591467\n",
      "gzsl: unseen=0.1396 , seen=0.0095 , h=0.0178\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93200 loss tensor(1.1392, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12179629846093903\n",
      "gzsl: unseen=0.1215 , seen=0.0146 , h=0.0261\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93400 loss tensor(0.8986, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11791112409896747\n",
      "gzsl: unseen=0.1179 , seen=0.0090 , h=0.0167\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93600 loss tensor(1.3979, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1135816091954023\n",
      "gzsl: unseen=0.1136 , seen=0.0085 , h=0.0158\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 93800 loss tensor(1.3658, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1327472822910579\n",
      "gzsl: unseen=0.1327 , seen=0.0132 , h=0.0240\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94000 loss tensor(1.0225, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10778231053964543\n",
      "gzsl: unseen=0.1078 , seen=0.0101 , h=0.0184\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94200 loss tensor(1.2668, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.13970934012412678\n",
      "gzsl: unseen=0.1390 , seen=0.0154 , h=0.0277\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94400 loss tensor(0.9703, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09200307812195596\n",
      "gzsl: unseen=0.0917 , seen=0.0115 , h=0.0205\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94600 loss tensor(1.0234, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09965786090005842\n",
      "gzsl: unseen=0.0993 , seen=0.0150 , h=0.0260\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94800 loss tensor(1.7283, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10723810637054354\n",
      "gzsl: unseen=0.1066 , seen=0.0116 , h=0.0210\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95000 loss tensor(1.1520, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12294280148061562\n",
      "gzsl: unseen=0.1216 , seen=0.0105 , h=0.0193\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95200 loss tensor(1.1810, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0983631015000974\n",
      "gzsl: unseen=0.0984 , seen=0.0057 , h=0.0107\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95400 loss tensor(1.4128, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08429097993376193\n",
      "gzsl: unseen=0.0843 , seen=0.0104 , h=0.0184\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95600 loss tensor(0.9832, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.12754163257354376\n",
      "gzsl: unseen=0.1269 , seen=0.0133 , h=0.0241\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95800 loss tensor(1.0368, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0976808104422365\n",
      "gzsl: unseen=0.0977 , seen=0.0105 , h=0.0190\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96000 loss tensor(1.3797, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.0904708357685564\n",
      "gzsl: unseen=0.0905 , seen=0.0135 , h=0.0235\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96200 loss tensor(1.1990, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10220510422754722\n",
      "gzsl: unseen=0.1022 , seen=0.0116 , h=0.0208\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96400 loss tensor(1.1765, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10525988700564971\n",
      "gzsl: unseen=0.1053 , seen=0.0089 , h=0.0165\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96600 loss tensor(1.1534, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09895729592830703\n",
      "gzsl: unseen=0.0990 , seen=0.0075 , h=0.0139\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96800 loss tensor(1.4630, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11172320280537697\n",
      "gzsl: unseen=0.1117 , seen=0.0159 , h=0.0279\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97000 loss tensor(1.2168, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10762583284628872\n",
      "gzsl: unseen=0.1073 , seen=0.0128 , h=0.0229\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97200 loss tensor(1.3695, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09304391194233391\n",
      "gzsl: unseen=0.0930 , seen=0.0064 , h=0.0120\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97400 loss tensor(1.5293, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.07816029612312488\n",
      "gzsl: unseen=0.0778 , seen=0.0167 , h=0.0275\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97600 loss tensor(1.0588, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.120862536528346\n",
      "gzsl: unseen=0.1209 , seen=0.0073 , h=0.0137\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97800 loss tensor(1.3752, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14114315771896135\n",
      "gzsl: unseen=0.1405 , seen=0.0261 , h=0.0440\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98000 loss tensor(0.8110, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10798893434638612\n",
      "gzsl: unseen=0.1073 , seen=0.0184 , h=0.0314\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98200 loss tensor(1.2514, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10988626534190532\n",
      "gzsl: unseen=0.1099 , seen=0.0115 , h=0.0209\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98400 loss tensor(0.9249, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.10052148840833822\n",
      "gzsl: unseen=0.1005 , seen=0.0107 , h=0.0194\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98600 loss tensor(1.1429, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14345236703682057\n",
      "gzsl: unseen=0.1435 , seen=0.0085 , h=0.0160\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98800 loss tensor(1.1970, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.14529417494642508\n",
      "gzsl: unseen=0.1450 , seen=0.0103 , h=0.0192\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99000 loss tensor(1.5249, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11159945451003311\n",
      "gzsl: unseen=0.1106 , seen=0.0081 , h=0.0150\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99200 loss tensor(1.2994, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "zsl: 0.09295012663159945\n",
      "gzsl: unseen=0.0923 , seen=0.0135 , h=0.0236\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99400 loss tensor(1.0576, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.09324430157802455\n",
      "gzsl: unseen=0.0932 , seen=0.0172 , h=0.0290\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99600 loss tensor(1.0512, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.08395336060783168\n",
      "gzsl: unseen=0.0840 , seen=0.0153 , h=0.0259\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99800 loss tensor(0.9718, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.11425801675433471\n",
      "gzsl: unseen=0.1143 , seen=0.0025 , h=0.0049\n",
      "____________________________________________________________________________________________________\n",
      "episode: 100000 loss tensor(1.2269, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 50\n",
      "class num: 200\n",
      "class num: 200\n",
      "zsl: 0.1065396482146336\n",
      "gzsl: unseen=0.1065 , seen=0.0186 , h=0.0316\n",
      "____________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "print(\"training...\")\n",
    "last_accuracy = 0.0\n",
    "loss_zero_num = 0\n",
    "#writer = SummaryWriter()\n",
    "for episode in range(EPISODE):\n",
    "    #attribute_network.train()\n",
    "    attribute_network_scheduler.step(episode)\n",
    "    metric_network_scheduler.step(episode)\n",
    "\n",
    "    train_loader = DataLoader(train_data, batch_size=BATCH_SIZE, shuffle=True)\n",
    "\n",
    "    batch_labels, batch_features = train_loader.__iter__().next()\n",
    "    batch_id = np.unique(batch_labels)\n",
    "\n",
    "    batch_attributes = torch.Tensor([all_attributes[i] for i in batch_id]).squeeze(1)\n",
    "    batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(batch_id.size, 0))\n",
    "    batch_attributes_ext = batch_attributes.repeat(BATCH_SIZE, 1)\n",
    "\n",
    "    batch_features_ext = Variable(batch_features_ext).cuda(GPU).float()  # 32*2048\n",
    "    batch_attributes_ext = Variable(batch_attributes_ext).cuda(GPU)\n",
    "    \n",
    "\n",
    "    re_batch_labels = []\n",
    "    for label in batch_labels.numpy():\n",
    "        index = np.argwhere(batch_id == label)\n",
    "        re_batch_labels.append(index[0][0])\n",
    "    re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "    re_batch_labels = Variable(re_batch_labels).cuda(GPU)\n",
    "    \n",
    "\n",
    "    criterion = HardTripletLoss_D(margin = Margin).cuda(GPU)\n",
    "    triplet_loss= criterion((attribute_network(batch_attributes_ext)), \n",
    "                            (batch_features_ext), re_batch_labels)\n",
    "    if triplet_loss == 0:\n",
    "        loss_zero_num = loss_zero_num + 1\n",
    "    metric_network.zero_grad()\n",
    "    attribute_network.zero_grad()\n",
    "    \n",
    "    triplet_loss.backward()\n",
    "    \n",
    "    attribute_network_optim.step()\n",
    "    metric_network_optim.step()\n",
    "    \n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"episode:\", episode+1, \"loss\", triplet_loss)\n",
    "        print('loss_zero_number= ',loss_zero_num)\n",
    "        #writer.add_scalar('data/loss_zero_number', loss_zero_num, episode)\n",
    "        loss_zero_num = 0\n",
    "        #writer.add_scalar('data/loss', triplet_loss, episode)\n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"Testing...\")\n",
    "        #attribute_network.eval()\n",
    "        zsl_accuracy = compute_accuracy_per_class(test_features, test_label, test_id, test_attributes)\n",
    "        gzsl_unseen_accuracy = compute_accuracy_per_class(test_features, test_label, np.arange(200), attributes)\n",
    "        gzsl_seen_accuracy  = compute_accuracy_per_class(test_seen_features, test_seen_label, np.arange(200), attributes)\n",
    "        H = 2 * gzsl_seen_accuracy * gzsl_unseen_accuracy / (gzsl_unseen_accuracy + gzsl_seen_accuracy)\n",
    "        print('zsl:', zsl_accuracy)\n",
    "        #print('zsl:', zsl_accuracy2)\n",
    "        print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy , gzsl_seen_accuracy, H))\n",
    "        #print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy2 , gzsl_seen_accuracy2, H2))\n",
    "        print('_'*100)\n",
    "        #writer.add_scalar('data/zsl_accuracy', zsl_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_unseen_accuracy', gzsl_unseen_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_seen_accuracy', gzsl_seen_accuracy, episode)\n",
    "        #writer.add_scalar('data/H', H, episode)\n",
    "#writer.export_scalars_to_json(\"./test.json\")\n",
    "#writer.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
